import { Snowflake } from "../utils/Snowflake";
import { GuildChannelDto } from "./GuildChannel";
import { GuildMemberDto } from "./GuildMember";
import { RoleDto } from "./Role";

/*
    {
        "inventory_settings":null,
        "members":[],
        "owner_id":"118483467766857735",
        "joined_at":"2016-01-12T20:06:43.794000+00:00",
        "max_members":500000,
        "max_video_channel_users":25,
        "application_id":null,
        "latest_onboarding_question_id":null,
        "lazy":true,
        "home_header":null,
        "premium_tier":0,
        "id":"136561520980000768",
        "member_count":1,
        "guild_scheduled_events":{},
        "name":"То самое запрещенное ПО",
        "default_message_notifications":0,
        "region":"deprecated",
        "hub_type":null,
        "premium_progress_bar_enabled":false,
        "icon":"b47d71a38a2f31931e1ff1f93b27e30a",
        "emojis":{},
        "voice_states":{},
        "afk_timeout":300,
        "banner":null,
        "threads":{},
        "mfa_level":0,
        "description":null,
        "incidents_data":null,
        "rules_channel_id":null,
        "system_channel_id":null,
        "stage_instances":{},
        "premium_subscription_count":0,
        "stickers":{},
        "system_channel_flags":0,
        "verification_level":0,
        "splash":null,
        "large":false,
        "roles":[],
        "discovery_splash":null,
        "safety_alerts_channel_id":null,
        "vanity_url_code":null,
        "soundboard_sounds":{},
        "channels":[],
        "presences":{},
        "public_updates_channel_id":null,
        "features":[],
        "afk_channel_id":null,
        "version":1687274989374,
        "nsfw_level":0,
        "nsfw":false,
        "preferred_locale":"en-US",
        "max_stage_video_channel_users":50,
        "embedded_activities":{},
        "application_command_counts":{},
        "explicit_content_filter":0
    }


    Guild {
        "application_id":null,
        "latest_onboarding_question_id":null,
        "emojis":[],
        "lazy":true,
        "premium_tier":0,
        "members":[
            {
                "user":{
                    "username":"timoshdev",
                    "public_flags":0,
                    "id":"1176284421666635780",
                    "global_name":"TimoshDev",
                    "display_name":"TimoshDev",
                    "discriminator":"0",
                    "bot":false,
                    "avatar_decoration_data":null,
                    "avatar":null
                },
                "roles":[
                    "302183276699713536"
                ],
                "premium_since":null,
                "pending":false,
                "nick":null,
                "mute":false,
                "joined_at":"2023-11-21T20:35:00.564000+00:00",
                "flags":0,
                "deaf":false,
                "communication_disabled_until":null,
                "avatar":null
            },
            {
                "user":{
                    "username":"timosh",
                    "public_flags":0,
                    "id":"118483467766857735",
                    "global_name":"Timosh",
                    "display_name":"Timosh",
                    "discriminator":"0",
                    "bot":false,
                    "avatar_decoration_data":null,
                    "avatar":"643fbd518376a074858bcf41a1c36751"
                },
                "roles":[
                    "302181071959752704",
                    "302183276699713536"
                ],
                "premium_since":null,
                "pending":false,
                "nick":null,
                "mute":false,
                "joined_at":"2016-01-12T20:06:43.794000+00:00",
                "flags":0,
                "deaf":false,
                "communication_disabled_until":null,
                "avatar":null
            }
        ],
        "premium_subscription_count":0,
        "afk_timeout":300,
        "owner_id":"118483467766857735",
        "system_channel_id":null,
        "guild_scheduled_events":[],
        "rules_channel_id":null,
        "id":"136561520980000768",
        "roles":[
            {
                "version":0,
                "unicode_emoji":null,
                "tags":{},
                "position":0,
                "permissions":"559623501254144",
                "name":"@everyone",
                "mentionable":false,
                "managed":false,
                "id":"136561520980000768",
                "icon":null,
                "hoist":false,
                "flags":0,
                "color":0
            },
            {
                "version":0,
                "unicode_emoji":null,
                "tags":{},
                "position":2,
                "permissions":"6442569216",
                "name":"GG",
                "mentionable":false,
                "managed":false,
                "id":"302181071959752704",
                "icon":null,
                "hoist":false,
                "flags":0,
                "color":3066993
            },{
                "version":0,
                "unicode_emoji":null,
                "tags":{},
                "position":3,
                "permissions":"8804616371839",
                "name":"Admin",
                "mentionable":true,
                "managed":false,
                "id":"302183276699713536",
                "icon":null,
                "hoist":true,
                "flags":0,
                "color":15158332
            },{
                "version":0,
                "unicode_emoji":null,
                "tags":{},
                "position":1,
                "permissions":"6442454528",
                "name":"WAVersion",
                "mentionable":false,
                "managed":false,
                "id":"490091692595347467",
                "icon":null,
                "hoist":false,
                "flags":0,
                "color":0
            }
        ],
        "default_message_notifications":0,
        "preferred_locale":"en-US",
        "name":"То самое запрещенное ПО",
        "voice_states":[],
        "icon":"b47d71a38a2f31931e1ff1f93b27e30a",
        "afk_channel_id":null,
        "mfa_level":0,
        "presences":[],
        "max_members":500000,
        "vanity_url_code":null,
        "embedded_activities":[],
        "max_stage_video_channel_users":50,
        "banner":null,
        "threads":[],
        "premium_progress_bar_enabled":false,
        "incidents_data":null,
        "public_updates_channel_id":null,
        "system_channel_flags":0,
        "description":null,
        "large":false,
        "region":"deprecated",
        "hub_type":null,
        "member_count":2,
        "nsfw":false,
        "explicit_content_filter":0,
        "inventory_settings":null,
        "features":["CHANNEL_ICON_EMOJIS_GENERATED"],
        "splash":null,
        "soundboard_sounds":[],
        "stickers":[],
        "nsfw_level":0,
        "discovery_splash":null,
        "max_video_channel_users":25,
        "channels":[
            {
                "version":1687274989356,
                "type":0,
                "topic":null,
                "rate_limit_per_user":0,
                "position":0,
                "permission_overwrites":[],
                "name":"notes",
                "last_pin_timestamp":"2023-04-15T11:16:17+00:00",
                "last_message_id":"1180455930098368674",
                "id":"595032489530097846",
                "icon_emoji":{
                    "name":"📝",
                    "id":null
                },
                "flags":0
            }
        ],
        "home_header":null,
        "application_command_counts":{},
        "joined_at":"2023-11-21T20:35:00.564000+00:00",
        "stage_instances":[],
        "version":1687274989374,
        "verification_level":0,
        "safety_alerts_channel_id":null
    }
*/

export interface GuildDto {
    id: Snowflake
    name: string
    roles: RoleDto[]
    members: GuildMemberDto[]
    icon: string | null
    splash: string | null
    channels: GuildChannelDto[]
}